1. Field of the Invention
The present invention is directed to a method and system for the use of virtual robots (“Bots”) to autonomously process requests. More particularly, this invention is directed to a method and system for the mass customization of Bots by administrators having no specialized knowledge or experience in the art.
2. Description of Related Art
For the purposes of the present invention, data maintained in a database, file, or other source of structured and/or tagged data is referred to herein as “structured data”. So called “virtual robots” (or “Bots”) are software programs that interact and/or communicate with users (human, machine, or otherwise) and take actions or make responses according to input from these users. “Bot” refers to any program which interacts with a user in some fashion and should not be assumed to refer only to physically embodied robots. “Input” refers to any description of a situation the Bot may encounter; although the most common inputs are textual inputs from users, inputs can be actions taken by users, external circumstances, or even events internal to the Bot such as an internal alarm clock.
A common use of a Bot is as an interface to a web site where the administrator of that site (the “administrator”) has programmed the Bot to answer simple inquiries (the “input”) that are typically asked by visitors to the site. The Bot finds a pattern, consisting of text and/or code, that best matches the input, and then takes the action that it is programmed to take in connection with that pattern (the “response”). The response can take the form of a text string that contains the information sought by the user (which text string can be transmitted to the user in text form, “read” by a text-to-speech engine, played back to the user as a wave file, or otherwise transmitted to the user in a comprehensible form) or the response can be any other action of which a program is capable, for example, opening a web page, turning a circuit on or off, initiating or ending a program, and the like.
It is desirable that the Bot be scripted to anticipate the inputs that it is likely to receive and the situations that it is likely to encounter. Because users may ask questions or otherwise create inputs in a wide variety of different ways, a large variety of patterns are required to comprehensively anticipate the variety of inputs that the Bot may receive. This complexity is greatly increased by the number of different ways a user may create any particular input. For example, if a user wants to know the name of the president of the Administrator's company, the user may input a text string reading “Who is your President?”, “What's the President's name?”, or even “Who's the top dog at AdminCo.?”
Historically, Bots have been scripted manually, by having one or more human scripters write patterns for the Bot and tie those patterns to appropriate responses. Such human scripting, although usually necessary, has a number of drawbacks. First, scripting is time-consuming. A typical Bot may contain thousands of possible patterns and responses, all of which need to be scripted. Second, the list of patterns and responses is usually incomplete. It is almost impossible for the scripters to comprehensively cover all possible patterns for a large body of information and desired responses. Third, there are many opportunities for misspellings or other errors. The greatest part of the time, expense, and difficulty of creating a Bot, therefore, is in the process of scripting it. Additionally, as the information changes or is added to over time, the time, expense, and difficulty of maintaining the patterns and responses that refer to the information are very substantial as well.
Scripting heretofore has been done in some form of code, either complex or simple, and has always required some level of aptitude and training. Furthermore, it takes a great deal of experience to successfully anticipate the questions that may be asked in any situation, making that task unsuited for lay people or lower pay grade workers.
Thus, there is a need in the art to have a method of scripting a Bot which successfully customizes the Bot to an individual application using knowledge that can be given to the Bot by any lay person or lower-level employee.